1. Field of the Invention
The present invention generally relates to computer systems, and more particularly to a method and system for viewing or examining electronic documents, including those transmitted across a computer network. The present invention is adapted for use with the Internet's World Wide Web, but it is generally applicable to any system which provides related computer files wherein it is desirable to view the files concurrently.
2. Description of Related Art
As illustrated FIG. 1, conventional computers often employ a graphical user interface (GUI) to present information to the user. The GUI is provided by software that is loaded on the computer, specifically, the computer's operating system acting in conjunction with application programs. Two well-known GUIs include OS/2 (a trademark of International Business Machines Corp.) and Windows 95 (a trademark of Microsoft Corp.). In the example of FIG. 1, a primary application window (a "parent" window) 1 is presented on a display device (i.e., video monitor) 2, the application window including several secondary windows ("child" windows) 3a, 3b and 3c which are enclosed by parent window 1. These "sibling" windows 3a, 3b and 3c depict the contents of various files or documents. A standard set of menu commands 4 and a toolbar 5 may be provided as part of the GUI, to simplify manipulation and control of the objects (text, charts and graphics) within the child windows. While FIG. 1 illustrates the sibling windows arranged side-by-side, they can also overlap one another, in multiple layers.
A given file may be too large to be represented within the physical confines of a child (or parent) window, and so scroll bars may be used to move (i.e., pan) the file within the confines of the window's boundaries. A horizontal scroll bar 6 and a vertical scroll bar 7 are shown associated with document window 3a. Graphic window 3b is depicted only with a horizontal scroll bar 8, while chart window 3c is shown without any scroll bars; in other words, the depicted chart file is of a small enough size or scale to be shown completely within the confines of window 3c without the need for any scroll bars. Scroll bars can be dynamically created when a previously small document gets so big that it more than fills the window (such as when a user is writing a letter).
Scroll buttons, such as those indicated at 9, 10 and 11, are often used to indicate the relative placement of a document within the confines of the particular document window. For example, a document whose upper left hand corner is displayed within a document might have a scroll button at the leftmost portion of its horizontal scroll bar, and a scroll button at the uppermost portion of its vertical scroll bar (as show with respect to window 3a in FIG. 1). The scroll bars are manipulated by the use of a visual pointer 12 displayed on the video monitor, which is controlled by a hardware pointing device, such as a "mouse." In FIG. 1, visual pointer 12 takes the form of an arrowhead. Users generally interact with scroll bars according to one of three methods: by clicking on one of the arrow (triangle) icons at either end of the scroll bar (that is, the left and right arrows of a horizontal scroll bar, or the up and down arrows of a vertical scroll bar); by clicking in the area between an arrow icon and a scroll button; or by dragging a scroll button (sometimes referred to as an "elevator") towards one of its associated arrow icons.
Besides scrolling, there are other GUI operations which might be applied to windows. Two common window operations are known as minimizing and maximizing. Generally, a window may be in one of three forms--"minimized," "maximized," or "restored." A parent window is maximized when it fully occupies the display area available to the application (usually the full screen on video monitor 28, less any area that is reserved for interfacing with the operating system). A child window is maximized when it fully occupies the display area available in its parent window. When a window is minimized, it "disappears," or is reduced to a small icon representation or title bar, so that it no longer is presented to receive user inputs. In the case of a minimized parent window, the application is not actually terminated, but is running in the background. Similarly, in the case of a minimized child window, the document is not actually closed, but is simply set aside. A window is in the restored form when its size is somewhere between the minimized and maximized form. In FIG. 1, parent window 1 is maximized, and child windows 3a, 3b and 3c are restored. These latter three windows can be maximized or minimized using buttons provided in the upper right-hand corner of each window, respectively. Similar window control buttons are provided for parent window 1.
Windows (parent or children) can be moved within the available display area if they are in a restored state, typically by placing graphical pointer 12 on the window's title bar and then "dragging" the title bar to another location. Windows can also usually be resized, typically by graphical pointer 12 on one of the corners of the window and then dragging the corner to another location.
The electronic documents depicted in child windows 3a, 3b and 3c may reside locally on a storage device which is physically integrated into the computer, or they may be provided via transmission across a computer network. A generalized client-server computing network 13 is illustrated in FIG. 2. Network 13 has several nodes or servers 14a, 14b, 14c and 14d which are interconnected, either directly to each other or indirectly through one of the other servers. Each server is essentially a stand-alone computer system (having one or more processors, memory devices, and communications devices), but has been adapted (programmed) for one primary purpose, that of providing information to individual users at another set of nodes, or computer workstations (clients) 15. A client is a member of a class or group of computers or computer systems that uses the services of another class or group to which it is not related. Clients 15 can be stand-alone computer systems (like personal computers, or PCs), or "dumber" systems adapted for limited use with network 13 (like network computers, or NCs). A single, physical computer can act as both a server and a client, although this implementation occurs infrequently. A network can be local in nature, or can be further connected to other systems (not shown) as indicated with servers 14c and 14d.
The construction of network 13 is also generally applicable to the Internet. Conventional protocols and services have been established for the Internet which allow the transfer of various types of information, including electronic mail, simple file transfers via FTP (file transfer protocol), remote computing via Telnet, "gopher" searching, Usenet newsgroups, and hypertext file delivery and multimedia streaming via the World Wide Web (WWW). A given server can be dedicated to performing one of these operations, or running multiple services. Internet services are typically accessed by specifying a unique address, or universal resource locator (URL). The URL has two basic components, the protocol to be used, and the target pathname. The URL specifies a hypertext transfer protocol ("http") and a pathname of the server. The server name is associated with a unique numeric value (a TCP/IP address, or "domain").
World Wide Web files (or "pages") are interrelated by providing hypertext links in each of the files; closely interrelated pages are commonly referred to as a "web site". A hypertext link is an image which is viewable on the workstation's display and can be selected by the user using the mouse (or via a keyboard command), and which then automatically instructs the client workstation 15 to request another page associated with the selected hypertext link (i.e., issue another URL). A hypertext link may appear as a picture, or as a word or sentence, possibly underlined or otherwise accentuated to indicate that it is a link and not just normal, informative text or graphics.
A WWW page may have text, graphic (still) images, and even multimedia objects such as sound recordings or animated video clips. A hypertext page, if more than just text, is usually constructed by loading several separate files, e.g., the hypertext file "main.html" might include a reference to a graphic image file "picture.gif" or to a sound file "beep.wav". When a client workstation 15 sends a request to a server for a page, the server first transmits (at least partially) the main hypertext file associated with the page, and then loads, either sequentially or simultaneously, the other files associated with the page. A given file may be transmitted as several separate pieces via TCP/IP protocol. The constructed page is then displayed on the workstation monitor. A page may be "larger" than the physical size of the monitor screen (i.e., larger than the software-programmed window provided for viewing the page), and techniques such as scroll bars are used by the viewing software (the web browser) to view different portions of the page.
Web pages are created using field-based languages such as the hypertext markup language (HTML). This language provides a protocol for transmitting formatted information and control codes used to construct the "complete" page that is ultimately displayed by the browser. Different fields within the main HTML file are defined to store the formatted information and control code parameters, using tags. Tags not only mark elements, such as text and graphics, but can also be used to construct graphical user interfaces within the web page (such as control buttons that are "depressed" by selecting them using the graphical pointer). In HTML, a tag is a pair of angle brackets (&lt;&gt;) that contain one or more letters and numbers between the angle brackets. One pair of angle brackets is often placed before an element, and another pair placed after, to indicate where the element begins and ends. For example, the language "&lt;B&gt;TODAY ONLY&lt;/B&gt;" uses the "B" tag to provide a boldface formatting code for the words "TODAY ONLY."
One innovation in web browsers allows the simultaneous display of multiple fields or "frames" within a single window, as illustrated in FIG. 3. Browser window 16 on computer display 2 contains three frames 17a, 17b and 17c which divide the web page into multiple scrollable regions. Frames can be created via HTML using the "FRAMESET" tag which specifies exactly how the frames will appear on the web page, and the "FRAME" tag which defines the various aspects of each frame, including which particular URL to load in the frame. The "COLS" and "ROWS" attributes placed within the FRAMESET tag dictate how the page is to be arranged. For example, the tag &lt;FRAMESET COLS="50%, 50%"&gt; divides the browser window vertically into two equal halves (one frame on the left, and one frame on the right).
Frames are not child windows; that is, they are not resizable or otherwise controllable, since their attributes are fixed by the HTML coding. This aspect of frames can be very frustrating, because certain frames often take up so much of the web browser display area that other important frames are difficult to examine. In the example of FIG. 3, the web page has been constructed to provide one frame (17a) with a few control buttons or hypertext links to other pages at the web site, another frame (17b) having an advertisement, and the third frame (17c) containing the information which is of actual interest to the user. As a result, the viewable area assigned to frame 17c is considerably small, making the contents more difficult to read. This smaller presentation area can also make it more difficult to scroll through the frame using the scroll button. These difficulties are exacerbated when the parent browser window uses less than the full display area (i.e., the browser is in a restored state). Additionally, the advertisement in frame 17b might be presented with automated blinking, scrolling or highlighting which is very distracting, and can be particularly aggravating since that frame cannot be removed or reduced in size. Moreover, the web site may be designed such that the unwanted advertisement frame 17b persists even when other files are loaded into the other frames.
Older web browsers do not support frames, so some web sites give the user an option of downloading two pages that are generally similar except that one page uses frames and the other does not (two different hypertext links are provided to the alternate pages). This option allows the user to avoid the aforementioned problems with frames, but not all web sites provide this option. Furthermore, this approach results in the user losing any advantages of frames which may be desirable to some extent. In FIG. 3, for example, the user may want to keep the set of links in frame 17a available while loading other pages in frame 17c.
In light of the foregoing, it would be desirable to devise an improved web browser providing an alternative mechanism for handling page frames, to allow the user to exert more control over each frame. It would be further advantageous if the method could retain the current behavior and user interaction for windows, and extend the functionality without unduly increasing the visual complexity.